﻿using System;
//using hessiancsharp.client;
//using HessianService;

namespace Client
{

    internal class ClientMain
    {

        [STAThread] // 使用 STAThread 标记 Windows 窗体的入口点 STAThreadAttribute 指示应用程序的 COM 线程模型是单线程单元。 使用 Windows 窗体的任何应用程序的入口点上必须存在此特性；如果没有此特性，则 Windows 组件可能无法正常工作。 如果不存在此特性，则应用程序使用 Windows 窗体不支持的多线程单元模型。
        static void Main(string[] args)
        {
            //CHessianProxyFactory factory = new CHessianProxyFactory();
            //string url = "http://testservice.5173esb.com/Hessianservice.hessian";
            //////string url = "http://localhost:7580/Hessianservice.hessian";
            //////string url = "http://localhost:6478/Hessianservice.hessian";
            //IService service = (IService)factory.Create(typeof(IService), url);
            //string url1 = "http://aaftest.5173.com/UserService.hessian";
            //IUserService userService = (IUserService)factory.Create(typeof(IUserService), url1); //创建一个服务代理
            try
            {
                //HessianOperation.User user = service.GetUser("符永丰", "男", 23);
                //var service = ServiceLocator.GetService<IUserService>();
                //不能传递2层以下的数据，如一个hashtable中的key还对应了一个hashtable
                //IDictionary us = new Hashtable
                //                     {
                //                         {0,"asd"}
                //                     };
     
                //var user = new Hashtable
                //               {
                //                   {0, "asdas"},
                //                   {1,us}
                //               };
                //string st =
                //    service.Hello(user.Name);
                //Console.Write(st);
                //Console.WriteLine(st);
            }
            catch (Exception ex)
            {

                Console.Write(ex.ToString());
            }
            
            Console.ReadLine();
        }
    }

    //public static class HessianObjectBuilder
    //{
    //    public static object CreateObject(Type objectType, string uri)
    //    {
    //        if (string.IsNullOrEmpty(uri))
    //        {
    //            return null;
    //        }
    //        var factory = new CHessianProxyFactory();
    //        return factory.Create(objectType, uri);
    //    }
        
    //}
}
